package com.sunny.fetch.pojo;

import java.util.ArrayList;
import java.util.List;

public class FForecastExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public FForecastExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andTidIsNull() {
            addCriterion("tid is null");
            return (Criteria) this;
        }

        public Criteria andTidIsNotNull() {
            addCriterion("tid is not null");
            return (Criteria) this;
        }

        public Criteria andTidEqualTo(Long value) {
            addCriterion("tid =", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotEqualTo(Long value) {
            addCriterion("tid <>", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThan(Long value) {
            addCriterion("tid >", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThanOrEqualTo(Long value) {
            addCriterion("tid >=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThan(Long value) {
            addCriterion("tid <", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThanOrEqualTo(Long value) {
            addCriterion("tid <=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidIn(List<Long> values) {
            addCriterion("tid in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotIn(List<Long> values) {
            addCriterion("tid not in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidBetween(Long value1, Long value2) {
            addCriterion("tid between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotBetween(Long value1, Long value2) {
            addCriterion("tid not between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andTsCodeIsNull() {
            addCriterion("ts_code is null");
            return (Criteria) this;
        }

        public Criteria andTsCodeIsNotNull() {
            addCriterion("ts_code is not null");
            return (Criteria) this;
        }

        public Criteria andTsCodeEqualTo(String value) {
            addCriterion("ts_code =", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeNotEqualTo(String value) {
            addCriterion("ts_code <>", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeGreaterThan(String value) {
            addCriterion("ts_code >", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeGreaterThanOrEqualTo(String value) {
            addCriterion("ts_code >=", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeLessThan(String value) {
            addCriterion("ts_code <", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeLessThanOrEqualTo(String value) {
            addCriterion("ts_code <=", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeLike(String value) {
            addCriterion("ts_code like", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeNotLike(String value) {
            addCriterion("ts_code not like", value, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeIn(List<String> values) {
            addCriterion("ts_code in", values, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeNotIn(List<String> values) {
            addCriterion("ts_code not in", values, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeBetween(String value1, String value2) {
            addCriterion("ts_code between", value1, value2, "tsCode");
            return (Criteria) this;
        }

        public Criteria andTsCodeNotBetween(String value1, String value2) {
            addCriterion("ts_code not between", value1, value2, "tsCode");
            return (Criteria) this;
        }

        public Criteria andAnnDateIsNull() {
            addCriterion("ann_date is null");
            return (Criteria) this;
        }

        public Criteria andAnnDateIsNotNull() {
            addCriterion("ann_date is not null");
            return (Criteria) this;
        }

        public Criteria andAnnDateEqualTo(String value) {
            addCriterion("ann_date =", value, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateNotEqualTo(String value) {
            addCriterion("ann_date <>", value, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateGreaterThan(String value) {
            addCriterion("ann_date >", value, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateGreaterThanOrEqualTo(String value) {
            addCriterion("ann_date >=", value, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateLessThan(String value) {
            addCriterion("ann_date <", value, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateLessThanOrEqualTo(String value) {
            addCriterion("ann_date <=", value, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateLike(String value) {
            addCriterion("ann_date like", value, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateNotLike(String value) {
            addCriterion("ann_date not like", value, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateIn(List<String> values) {
            addCriterion("ann_date in", values, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateNotIn(List<String> values) {
            addCriterion("ann_date not in", values, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateBetween(String value1, String value2) {
            addCriterion("ann_date between", value1, value2, "annDate");
            return (Criteria) this;
        }

        public Criteria andAnnDateNotBetween(String value1, String value2) {
            addCriterion("ann_date not between", value1, value2, "annDate");
            return (Criteria) this;
        }

        public Criteria andEndDateIsNull() {
            addCriterion("end_date is null");
            return (Criteria) this;
        }

        public Criteria andEndDateIsNotNull() {
            addCriterion("end_date is not null");
            return (Criteria) this;
        }

        public Criteria andEndDateEqualTo(String value) {
            addCriterion("end_date =", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateNotEqualTo(String value) {
            addCriterion("end_date <>", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateGreaterThan(String value) {
            addCriterion("end_date >", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateGreaterThanOrEqualTo(String value) {
            addCriterion("end_date >=", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateLessThan(String value) {
            addCriterion("end_date <", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateLessThanOrEqualTo(String value) {
            addCriterion("end_date <=", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateLike(String value) {
            addCriterion("end_date like", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateNotLike(String value) {
            addCriterion("end_date not like", value, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateIn(List<String> values) {
            addCriterion("end_date in", values, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateNotIn(List<String> values) {
            addCriterion("end_date not in", values, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateBetween(String value1, String value2) {
            addCriterion("end_date between", value1, value2, "endDate");
            return (Criteria) this;
        }

        public Criteria andEndDateNotBetween(String value1, String value2) {
            addCriterion("end_date not between", value1, value2, "endDate");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(String value) {
            addCriterion("type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(String value) {
            addCriterion("type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(String value) {
            addCriterion("type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(String value) {
            addCriterion("type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(String value) {
            addCriterion("type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(String value) {
            addCriterion("type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLike(String value) {
            addCriterion("type like", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotLike(String value) {
            addCriterion("type not like", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<String> values) {
            addCriterion("type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<String> values) {
            addCriterion("type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(String value1, String value2) {
            addCriterion("type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(String value1, String value2) {
            addCriterion("type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andPChangeMinIsNull() {
            addCriterion("p_change_min is null");
            return (Criteria) this;
        }

        public Criteria andPChangeMinIsNotNull() {
            addCriterion("p_change_min is not null");
            return (Criteria) this;
        }

        public Criteria andPChangeMinEqualTo(Float value) {
            addCriterion("p_change_min =", value, "pChangeMin");
            return (Criteria) this;
        }

        public Criteria andPChangeMinNotEqualTo(Float value) {
            addCriterion("p_change_min <>", value, "pChangeMin");
            return (Criteria) this;
        }

        public Criteria andPChangeMinGreaterThan(Float value) {
            addCriterion("p_change_min >", value, "pChangeMin");
            return (Criteria) this;
        }

        public Criteria andPChangeMinGreaterThanOrEqualTo(Float value) {
            addCriterion("p_change_min >=", value, "pChangeMin");
            return (Criteria) this;
        }

        public Criteria andPChangeMinLessThan(Float value) {
            addCriterion("p_change_min <", value, "pChangeMin");
            return (Criteria) this;
        }

        public Criteria andPChangeMinLessThanOrEqualTo(Float value) {
            addCriterion("p_change_min <=", value, "pChangeMin");
            return (Criteria) this;
        }

        public Criteria andPChangeMinIn(List<Float> values) {
            addCriterion("p_change_min in", values, "pChangeMin");
            return (Criteria) this;
        }

        public Criteria andPChangeMinNotIn(List<Float> values) {
            addCriterion("p_change_min not in", values, "pChangeMin");
            return (Criteria) this;
        }

        public Criteria andPChangeMinBetween(Float value1, Float value2) {
            addCriterion("p_change_min between", value1, value2, "pChangeMin");
            return (Criteria) this;
        }

        public Criteria andPChangeMinNotBetween(Float value1, Float value2) {
            addCriterion("p_change_min not between", value1, value2, "pChangeMin");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxIsNull() {
            addCriterion("p_change_max is null");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxIsNotNull() {
            addCriterion("p_change_max is not null");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxEqualTo(Float value) {
            addCriterion("p_change_max =", value, "pChangeMax");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxNotEqualTo(Float value) {
            addCriterion("p_change_max <>", value, "pChangeMax");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxGreaterThan(Float value) {
            addCriterion("p_change_max >", value, "pChangeMax");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxGreaterThanOrEqualTo(Float value) {
            addCriterion("p_change_max >=", value, "pChangeMax");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxLessThan(Float value) {
            addCriterion("p_change_max <", value, "pChangeMax");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxLessThanOrEqualTo(Float value) {
            addCriterion("p_change_max <=", value, "pChangeMax");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxIn(List<Float> values) {
            addCriterion("p_change_max in", values, "pChangeMax");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxNotIn(List<Float> values) {
            addCriterion("p_change_max not in", values, "pChangeMax");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxBetween(Float value1, Float value2) {
            addCriterion("p_change_max between", value1, value2, "pChangeMax");
            return (Criteria) this;
        }

        public Criteria andPChangeMaxNotBetween(Float value1, Float value2) {
            addCriterion("p_change_max not between", value1, value2, "pChangeMax");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinIsNull() {
            addCriterion("net_profit_min is null");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinIsNotNull() {
            addCriterion("net_profit_min is not null");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinEqualTo(Float value) {
            addCriterion("net_profit_min =", value, "netProfitMin");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinNotEqualTo(Float value) {
            addCriterion("net_profit_min <>", value, "netProfitMin");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinGreaterThan(Float value) {
            addCriterion("net_profit_min >", value, "netProfitMin");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinGreaterThanOrEqualTo(Float value) {
            addCriterion("net_profit_min >=", value, "netProfitMin");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinLessThan(Float value) {
            addCriterion("net_profit_min <", value, "netProfitMin");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinLessThanOrEqualTo(Float value) {
            addCriterion("net_profit_min <=", value, "netProfitMin");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinIn(List<Float> values) {
            addCriterion("net_profit_min in", values, "netProfitMin");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinNotIn(List<Float> values) {
            addCriterion("net_profit_min not in", values, "netProfitMin");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinBetween(Float value1, Float value2) {
            addCriterion("net_profit_min between", value1, value2, "netProfitMin");
            return (Criteria) this;
        }

        public Criteria andNetProfitMinNotBetween(Float value1, Float value2) {
            addCriterion("net_profit_min not between", value1, value2, "netProfitMin");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxIsNull() {
            addCriterion("net_profit_max is null");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxIsNotNull() {
            addCriterion("net_profit_max is not null");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxEqualTo(Float value) {
            addCriterion("net_profit_max =", value, "netProfitMax");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxNotEqualTo(Float value) {
            addCriterion("net_profit_max <>", value, "netProfitMax");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxGreaterThan(Float value) {
            addCriterion("net_profit_max >", value, "netProfitMax");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxGreaterThanOrEqualTo(Float value) {
            addCriterion("net_profit_max >=", value, "netProfitMax");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxLessThan(Float value) {
            addCriterion("net_profit_max <", value, "netProfitMax");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxLessThanOrEqualTo(Float value) {
            addCriterion("net_profit_max <=", value, "netProfitMax");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxIn(List<Float> values) {
            addCriterion("net_profit_max in", values, "netProfitMax");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxNotIn(List<Float> values) {
            addCriterion("net_profit_max not in", values, "netProfitMax");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxBetween(Float value1, Float value2) {
            addCriterion("net_profit_max between", value1, value2, "netProfitMax");
            return (Criteria) this;
        }

        public Criteria andNetProfitMaxNotBetween(Float value1, Float value2) {
            addCriterion("net_profit_max not between", value1, value2, "netProfitMax");
            return (Criteria) this;
        }

        public Criteria andLastParentNetIsNull() {
            addCriterion("last_parent_net is null");
            return (Criteria) this;
        }

        public Criteria andLastParentNetIsNotNull() {
            addCriterion("last_parent_net is not null");
            return (Criteria) this;
        }

        public Criteria andLastParentNetEqualTo(Float value) {
            addCriterion("last_parent_net =", value, "lastParentNet");
            return (Criteria) this;
        }

        public Criteria andLastParentNetNotEqualTo(Float value) {
            addCriterion("last_parent_net <>", value, "lastParentNet");
            return (Criteria) this;
        }

        public Criteria andLastParentNetGreaterThan(Float value) {
            addCriterion("last_parent_net >", value, "lastParentNet");
            return (Criteria) this;
        }

        public Criteria andLastParentNetGreaterThanOrEqualTo(Float value) {
            addCriterion("last_parent_net >=", value, "lastParentNet");
            return (Criteria) this;
        }

        public Criteria andLastParentNetLessThan(Float value) {
            addCriterion("last_parent_net <", value, "lastParentNet");
            return (Criteria) this;
        }

        public Criteria andLastParentNetLessThanOrEqualTo(Float value) {
            addCriterion("last_parent_net <=", value, "lastParentNet");
            return (Criteria) this;
        }

        public Criteria andLastParentNetIn(List<Float> values) {
            addCriterion("last_parent_net in", values, "lastParentNet");
            return (Criteria) this;
        }

        public Criteria andLastParentNetNotIn(List<Float> values) {
            addCriterion("last_parent_net not in", values, "lastParentNet");
            return (Criteria) this;
        }

        public Criteria andLastParentNetBetween(Float value1, Float value2) {
            addCriterion("last_parent_net between", value1, value2, "lastParentNet");
            return (Criteria) this;
        }

        public Criteria andLastParentNetNotBetween(Float value1, Float value2) {
            addCriterion("last_parent_net not between", value1, value2, "lastParentNet");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateIsNull() {
            addCriterion("first_ann_date is null");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateIsNotNull() {
            addCriterion("first_ann_date is not null");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateEqualTo(String value) {
            addCriterion("first_ann_date =", value, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateNotEqualTo(String value) {
            addCriterion("first_ann_date <>", value, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateGreaterThan(String value) {
            addCriterion("first_ann_date >", value, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateGreaterThanOrEqualTo(String value) {
            addCriterion("first_ann_date >=", value, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateLessThan(String value) {
            addCriterion("first_ann_date <", value, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateLessThanOrEqualTo(String value) {
            addCriterion("first_ann_date <=", value, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateLike(String value) {
            addCriterion("first_ann_date like", value, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateNotLike(String value) {
            addCriterion("first_ann_date not like", value, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateIn(List<String> values) {
            addCriterion("first_ann_date in", values, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateNotIn(List<String> values) {
            addCriterion("first_ann_date not in", values, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateBetween(String value1, String value2) {
            addCriterion("first_ann_date between", value1, value2, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andFirstAnnDateNotBetween(String value1, String value2) {
            addCriterion("first_ann_date not between", value1, value2, "firstAnnDate");
            return (Criteria) this;
        }

        public Criteria andSummaryIsNull() {
            addCriterion("summary is null");
            return (Criteria) this;
        }

        public Criteria andSummaryIsNotNull() {
            addCriterion("summary is not null");
            return (Criteria) this;
        }

        public Criteria andSummaryEqualTo(String value) {
            addCriterion("summary =", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryNotEqualTo(String value) {
            addCriterion("summary <>", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryGreaterThan(String value) {
            addCriterion("summary >", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryGreaterThanOrEqualTo(String value) {
            addCriterion("summary >=", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryLessThan(String value) {
            addCriterion("summary <", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryLessThanOrEqualTo(String value) {
            addCriterion("summary <=", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryLike(String value) {
            addCriterion("summary like", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryNotLike(String value) {
            addCriterion("summary not like", value, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryIn(List<String> values) {
            addCriterion("summary in", values, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryNotIn(List<String> values) {
            addCriterion("summary not in", values, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryBetween(String value1, String value2) {
            addCriterion("summary between", value1, value2, "summary");
            return (Criteria) this;
        }

        public Criteria andSummaryNotBetween(String value1, String value2) {
            addCriterion("summary not between", value1, value2, "summary");
            return (Criteria) this;
        }

        public Criteria andChangeReasonIsNull() {
            addCriterion("change_reason is null");
            return (Criteria) this;
        }

        public Criteria andChangeReasonIsNotNull() {
            addCriterion("change_reason is not null");
            return (Criteria) this;
        }

        public Criteria andChangeReasonEqualTo(String value) {
            addCriterion("change_reason =", value, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonNotEqualTo(String value) {
            addCriterion("change_reason <>", value, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonGreaterThan(String value) {
            addCriterion("change_reason >", value, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonGreaterThanOrEqualTo(String value) {
            addCriterion("change_reason >=", value, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonLessThan(String value) {
            addCriterion("change_reason <", value, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonLessThanOrEqualTo(String value) {
            addCriterion("change_reason <=", value, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonLike(String value) {
            addCriterion("change_reason like", value, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonNotLike(String value) {
            addCriterion("change_reason not like", value, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonIn(List<String> values) {
            addCriterion("change_reason in", values, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonNotIn(List<String> values) {
            addCriterion("change_reason not in", values, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonBetween(String value1, String value2) {
            addCriterion("change_reason between", value1, value2, "changeReason");
            return (Criteria) this;
        }

        public Criteria andChangeReasonNotBetween(String value1, String value2) {
            addCriterion("change_reason not between", value1, value2, "changeReason");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}